import { defineConfig } from 'vite'
import * as path from 'path'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite' // vue 自动导入
import Components from 'unplugin-vue-components/vite' // 组件自动导入
export default defineConfig({
  plugins: [vue(),
    Components({
      deep: true, // 搜索子目录
      dirs: ['src/components'], // 配置需要默认导入的自定义组件文件夹，该文件夹下的所有组件都会自动 import
    }),
  AutoImport({
    include: [/\.[tj]sx?$/, /\.vue$/, /\.vue\?vue/, /\.md$/],
    imports: ['vue', 'vue-router', 'pinia'], // , '@vueuse/core'
    //注意这个配置和src同级
    dts: 'types/auto-imports.d.ts',
    eslintrc: {
      enabled: false, // 默认false, true启用。生成一次就可以，避免每次工程启动都生成，一旦生成配置文件之后，最好把enable关掉，即改成false
//否则这个文件每次会在重新加载的时候重新生成，这会导致eslint有时会找不到这个文件。当需要更新配置文件的时候，再重新打开
      filepath: './.eslintrc-auto-import.json', // 生成json文件,可以不配置该项，默认就是将生成在根目录
      globalsPropValue: true,
    },
  })
  ],
  resolve: {
    // 路径别名配置
    alias: {
      '@': path.resolve(__dirname, 'src'),
      '@img': path.resolve(__dirname, 'src/assets/image')
    }
  },
  build: {
    target: 'es2015', //指定es版本,浏览器的兼容性 最低 es2015
    outDir: 'dist', //指定打包输出路径
    assetsDir: 'assets', //指定静态资源存放路径
    cssCodeSplit: true, //css代码拆分,禁用则所有样式保存在一个css里面
    sourcemap: false, //是否构建source map 文件

    minify: 'terser', // 默认是esbuild，需要配置为terser
    // 生产环境取消 console
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    },
    //会打包出 css js 等文件夹 目录显得清晰
    rollupOptions: {
      //input: {
      //main: path.resolve(__dirname, 'index.html'),
      //nested: path.resolve(__dirname, 'nested/index.html'),
      //},
      //output: {
      //  chunkFileNames: "js/[name]-[hash].js",
      //  entryFileNames: "js/[name]-[hash].js",
      //  assetFileNames: "[ext]/[name]-[hash].[ext]",
      //},
    },
  },
  // 样式相关规则
  // css: {
  //   preprocessorOptions: {
  //     scss: {
  //       // 加载全局样式
  //       additionalData: `@use 'src/uni.scss';`,
  //     },
  //   },
  // },

  server: {
    // host: "cs.cqyukexing.com", // 指定服务器主机名
    port: 8686, // 指定服务端口号
    // open: false, // 运行自动打开浏览器
    // https: true, // 关闭https
    // strictPort: true, // 若8888端口被占用,直接结束项目
    proxy: {
      '/api': {
        target: 'http://rwapitest.cheeseword.com',
        //target: 'https://cs.cqyukexing.com/paydriver',
        //target: 'https://taxi.96096kp.com:8060/paydriver',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      },
      '/Appraise': {
        target: 'https://taxi.96096kp.com:8020',
        //target: 'https://taxi.96096kp.com:8060/Bppraise',
        //target: 'http://192.168.88.26:8088',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/Appraise/, '')
      },
      '/ad': {
        target: 'https://cs.cqyukexing.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/ad/, '')
      }
    }
  },
})
